/*
 * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
 * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 */
/*
 * Copyright 2001-2004 The Apache Software Foundation.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*
 * $Id: xpath.lex,v 1.12 2005/08/02 02:59:03 mcnamara Exp $
 */
/*
 * @author Jacek Ambroziak
 * @author Santiago Pericas-Geertsen
 * @author Morten Jorgensen
 *
 */
package com.sun.org.apache.xalan.internal.xsltc.compiler;

import com.sun.java_cup.internal.runtime.Symbol;

class XPathLexer implements com.sun.java_cup.internal.runtime.Scanner {
    private final int YY_BUFFER_SIZE = 512;
    private final int YY_F = -1;
    private final int YY_NO_STATE = -1;
    private final int YY_NOT_ACCEPT = 0;
    private final int YY_START = 1;
    private final int YY_END = 2;
    private final int YY_NO_ANCHOR = 4;
    private final int YY_BOL = 65536;
    private final int YY_EOF = 65537;
    public final int YYEOF = -1;

    int last, beforeLast;

    void initialize() {
        last = beforeLast = -1;
    }

    static boolean isWhitespace(int c) {
        return (c == ' ' || c == '\t' || c == '\r' || c == '\n' || c == '\f');
    }

    /**
     * If symbol is not followed by '::' or '(', then treat it as a
     * name instead of an axis or function (Jira-1912).
     */
    Symbol disambiguateAxisOrFunction(int ss) throws Exception {
        // Peek in the input buffer without changing the internal state
        int index = yy_buffer_index;
        // Skip whitespace
        while (index < yy_buffer_read && isWhitespace(yy_buffer[index])) {
            index++;
        }
        // If end of buffer, can't disambiguate :(
        if (index >= yy_buffer_read) {
            // Can't disambiguate, so return as symbol
            return new Symbol(ss);
        }
        // Return symbol if next token is '::' or '('
        return (yy_buffer[index] == ':' && yy_buffer[index + 1] == ':' || yy_buffer[index] == '(') ? newSymbol(ss) : newSymbol(sym.QNAME, yytext());
    }

    /**
     * If symbol is first token or if it follows any of the operators
     * listed in http://www.w3.org/TR/xpath#exprlex then treat as a
     * name instead of a keyword (Jira-1912). Look two tokens behind
     * to desambiguate expressions like "* and *" or "and * and".
     */
    Symbol disambiguateOperator(int ss) throws Exception {
        switch (last) {
            case sym.STAR:
                if (beforeLast != sym.QNAME)
                    break;
            case -1: // first token
            case sym.ATSIGN:
            case sym.DCOLON:
            case sym.LPAREN:
            case sym.LBRACK:
            case sym.COMMA:
            case sym.AND:
            case sym.OR:
            case sym.MOD:
            case sym.DIV:
            case sym.SLASH:
            case sym.DSLASH:
            case sym.VBAR:
            case sym.PLUS:
            case sym.MINUS:
            case sym.EQ:
            case sym.NE:
            case sym.LT:
            case sym.LE:
            case sym.GT:
            case sym.GE:
                return newSymbol(sym.QNAME, yytext());
        }
        return newSymbol(ss);
    }

    Symbol newSymbol(int ss) {
        beforeLast = last;
        last = ss;
        return new Symbol(ss);
    }

    Symbol newSymbol(int ss, String value) {
        beforeLast = last;
        last = ss;
        return new Symbol(ss, value);
    }

    Symbol newSymbol(int ss, Long value) {
        beforeLast = last;
        last = ss;
        return new Symbol(ss, value);
    }

    Symbol newSymbol(int ss, Double value) {
        beforeLast = last;
        last = ss;
        return new Symbol(ss, value);
    }

    private java.io.BufferedReader yy_reader;
    private int yy_buffer_index;
    private int yy_buffer_read;
    private int yy_buffer_start;
    private int yy_buffer_end;
    private char yy_buffer[];
    private boolean yy_at_bol;
    private int yy_lexical_state;

    XPathLexer(java.io.Reader reader) {
        this();
        if (null == reader) {
            throw (new Error("Error: Bad input stream initializer."));
        }
        yy_reader = new java.io.BufferedReader(reader);
    }

    XPathLexer(java.io.InputStream instream) {
        this();
        if (null == instream) {
            throw (new Error("Error: Bad input stream initializer."));
        }
        yy_reader = new java.io.BufferedReader(new java.io.InputStreamReader(instream));
    }

    private XPathLexer() {
        yy_buffer = new char[YY_BUFFER_SIZE];
        yy_buffer_read = 0;
        yy_buffer_index = 0;
        yy_buffer_start = 0;
        yy_buffer_end = 0;
        yy_at_bol = true;
        yy_lexical_state = YYINITIAL;
    }

    private boolean yy_eof_done = false;
    private final int YYINITIAL = 0;
    private final int yy_state_dtrans[] = { 0 };

    private void yybegin(int state) {
        yy_lexical_state = state;
    }

    private int yy_advance() throws java.io.IOException {
        int next_read;
        int i;
        int j;

        if (yy_buffer_index < yy_buffer_read) {
            return yy_buffer[yy_buffer_index++];
        }

        if (0 != yy_buffer_start) {
            i = yy_buffer_start;
            j = 0;
            while (i < yy_buffer_read) {
                yy_buffer[j] = yy_buffer[i];
                ++i;
                ++j;
            }
            yy_buffer_end = yy_buffer_end - yy_buffer_start;
            yy_buffer_start = 0;
            yy_buffer_read = j;
            yy_buffer_index = j;
            next_read = yy_reader.read(yy_buffer, yy_buffer_read, yy_buffer.length - yy_buffer_read);
            if (-1 == next_read) {
                return YY_EOF;
            }
            yy_buffer_read = yy_buffer_read + next_read;
        }

        while (yy_buffer_index >= yy_buffer_read) {
            if (yy_buffer_index >= yy_buffer.length) {
                yy_buffer = yy_double(yy_buffer);
            }
            next_read = yy_reader.read(yy_buffer, yy_buffer_read, yy_buffer.length - yy_buffer_read);
            if (-1 == next_read) {
                return YY_EOF;
            }
            yy_buffer_read = yy_buffer_read + next_read;
        }
        return yy_buffer[yy_buffer_index++];
    }

    private void yy_move_end() {
        if (yy_buffer_end > yy_buffer_start && '\n' == yy_buffer[yy_buffer_end - 1])
            yy_buffer_end--;
        if (yy_buffer_end > yy_buffer_start && '\r' == yy_buffer[yy_buffer_end - 1])
            yy_buffer_end--;
    }

    private boolean yy_last_was_cr = false;

    private void yy_mark_start() {
        yy_buffer_start = yy_buffer_index;
    }

    private void yy_mark_end() {
        yy_buffer_end = yy_buffer_index;
    }

    private void yy_to_mark() {
        yy_buffer_index = yy_buffer_end;
        yy_at_bol = (yy_buffer_end > yy_buffer_start) && ('\r' == yy_buffer[yy_buffer_end - 1] || '\n' == yy_buffer[yy_buffer_end - 1] || 2028/*LS*/ == yy_buffer[yy_buffer_end - 1] || 2029/*PS*/ == yy_buffer[yy_buffer_end - 1]);
    }

    private java.lang.String yytext() {
        return (new java.lang.String(yy_buffer, yy_buffer_start, yy_buffer_end - yy_buffer_start));
    }

    private int yylength() {
        return yy_buffer_end - yy_buffer_start;
    }

    private char[] yy_double(char buf[]) {
        int i;
        char newbuf[];
        newbuf = new char[2 * buf.length];
        for (i = 0; i < buf.length; ++i) {
            newbuf[i] = buf[i];
        }
        return newbuf;
    }

    private final int YY_E_INTERNAL = 0;
    private final int YY_E_MATCH = 1;
    private java.lang.String yy_error_string[] = { "Error: Internal error.\n", "Error: Unmatched input.\n" };

    private void yy_error(int code, boolean fatal) {
        java.lang.System.out.print(yy_error_string[code]);
        java.lang.System.out.flush();
        if (fatal) {
            throw new Error("Fatal Error.\n");
        }
    }

    static private int[][] unpackFromString(int size1, int size2, String st) {
        int colonIndex = -1;
        String lengthString;
        int sequenceLength = 0;
        int sequenceInteger = 0;

        int commaIndex;
        String workString;

        int res[][] = new int[size1][size2];
        for (int i = 0; i < size1; i++) {
            for (int j = 0; j < size2; j++) {
                if (sequenceLength != 0) {
                    res[i][j] = sequenceInteger;
                    sequenceLength--;
                    continue;
                }
                commaIndex = st.indexOf(',');
                workString = (commaIndex == -1) ? st : st.substring(0, commaIndex);
                st = st.substring(commaIndex + 1);
                colonIndex = workString.indexOf(':');
                if (colonIndex == -1) {
                    res[i][j] = Integer.parseInt(workString);
                    continue;
                }
                lengthString = workString.substring(colonIndex + 1);
                sequenceLength = Integer.parseInt(lengthString);
                workString = workString.substring(0, colonIndex);
                sequenceInteger = Integer.parseInt(workString);
                res[i][j] = sequenceInteger;
                sequenceLength--;
            }
        }
        return res;
    }

    private int yy_acpt[] = {
            /* 0 */YY_NOT_ACCEPT,
            /* 1 */YY_NO_ANCHOR,
            /* 2 */YY_NO_ANCHOR,
            /* 3 */YY_NO_ANCHOR,
            /* 4 */YY_NO_ANCHOR,
            /* 5 */YY_NO_ANCHOR,
            /* 6 */YY_NO_ANCHOR,
            /* 7 */YY_NO_ANCHOR,
            /* 8 */YY_NO_ANCHOR,
            /* 9 */YY_NO_ANCHOR,
            /* 10 */YY_NO_ANCHOR,
            /* 11 */YY_NO_ANCHOR,
            /* 12 */YY_NO_ANCHOR,
            /* 13 */YY_NO_ANCHOR,
            /* 14 */YY_NO_ANCHOR,
            /* 15 */YY_NO_ANCHOR,
            /* 16 */YY_NO_ANCHOR,
            /* 17 */YY_NO_ANCHOR,
            /* 18 */YY_NO_ANCHOR,
            /* 19 */YY_NO_ANCHOR,
            /* 20 */YY_NO_ANCHOR,
            /* 21 */YY_NO_ANCHOR,
            /* 22 */YY_NO_ANCHOR,
            /* 23 */YY_NO_ANCHOR,
            /* 24 */YY_NO_ANCHOR,
            /* 25 */YY_NO_ANCHOR,
            /* 26 */YY_NO_ANCHOR,
            /* 27 */YY_NO_ANCHOR,
            /* 28 */YY_NO_ANCHOR,
            /* 29 */YY_NO_ANCHOR,
            /* 30 */YY_NO_ANCHOR,
            /* 31 */YY_NO_ANCHOR,
            /* 32 */YY_NO_ANCHOR,
            /* 33 */YY_NO_ANCHOR,
            /* 34 */YY_NO_ANCHOR,
            /* 35 */YY_NO_ANCHOR,
            /* 36 */YY_NO_ANCHOR,
            /* 37 */YY_NO_ANCHOR,
            /* 38 */YY_NO_ANCHOR,
            /* 39 */YY_NO_ANCHOR,
            /* 40 */YY_NO_ANCHOR,
            /* 41 */YY_NO_ANCHOR,
            /* 42 */YY_NO_ANCHOR,
            /* 43 */YY_NO_ANCHOR,
            /* 44 */YY_NO_ANCHOR,
            /* 45 */YY_NO_ANCHOR,
            /* 46 */YY_NO_ANCHOR,
            /* 47 */YY_NO_ANCHOR,
            /* 48 */YY_NO_ANCHOR,
            /* 49 */YY_NO_ANCHOR,
            /* 50 */YY_NO_ANCHOR,
            /* 51 */YY_NO_ANCHOR,
            /* 52 */YY_NO_ANCHOR,
            /* 53 */YY_NO_ANCHOR,
            /* 54 */YY_NO_ANCHOR,
            /* 55 */YY_NO_ANCHOR,
            /* 56 */YY_NO_ANCHOR,
            /* 57 */YY_NO_ANCHOR,
            /* 58 */YY_NO_ANCHOR,
            /* 59 */YY_NO_ANCHOR,
            /* 60 */YY_NO_ANCHOR,
            /* 61 */YY_NO_ANCHOR,
            /* 62 */YY_NO_ANCHOR,
            /* 63 */YY_NO_ANCHOR,
            /* 64 */YY_NOT_ACCEPT,
            /* 65 */YY_NO_ANCHOR,
            /* 66 */YY_NO_ANCHOR,
            /* 67 */YY_NO_ANCHOR,
            /* 68 */YY_NO_ANCHOR,
            /* 69 */YY_NOT_ACCEPT,
            /* 70 */YY_NO_ANCHOR,
            /* 71 */YY_NO_ANCHOR,
            /* 72 */YY_NOT_ACCEPT,
            /* 73 */YY_NO_ANCHOR,
            /* 74 */YY_NO_ANCHOR,
            /* 75 */YY_NOT_ACCEPT,
            /* 76 */YY_NO_ANCHOR,
            /* 77 */YY_NO_ANCHOR,
            /* 78 */YY_NOT_ACCEPT,
            /* 79 */YY_NO_ANCHOR,
            /* 80 */YY_NOT_ACCEPT,
            /* 81 */YY_NO_ANCHOR,
            /* 82 */YY_NOT_ACCEPT,
            /* 83 */YY_NO_ANCHOR,
            /* 84 */YY_NOT_ACCEPT,
            /* 85 */YY_NO_ANCHOR,
            /* 86 */YY_NOT_ACCEPT,
            /* 87 */YY_NO_ANCHOR,
            /* 88 */YY_NOT_ACCEPT,
            /* 89 */YY_NO_ANCHOR,
            /* 90 */YY_NOT_ACCEPT,
            /* 91 */YY_NO_ANCHOR,
            /* 92 */YY_NOT_ACCEPT,
            /* 93 */YY_NO_ANCHOR,
            /* 94 */YY_NOT_ACCEPT,
            /* 95 */YY_NO_ANCHOR,
            /* 96 */YY_NOT_ACCEPT,
            /* 97 */YY_NO_ANCHOR,
            /* 98 */YY_NOT_ACCEPT,
            /* 99 */YY_NO_ANCHOR,
            /* 100 */YY_NOT_ACCEPT,
            /* 101 */YY_NO_ANCHOR,
            /* 102 */YY_NOT_ACCEPT,
            /* 103 */YY_NO_ANCHOR,
            /* 104 */YY_NOT_ACCEPT,
            /* 105 */YY_NO_ANCHOR,
            /* 106 */YY_NOT_ACCEPT,
            /* 107 */YY_NO_ANCHOR,
            /* 108 */YY_NOT_ACCEPT,
            /* 109 */YY_NO_ANCHOR,
            /* 110 */YY_NOT_ACCEPT,
            /* 111 */YY_NO_ANCHOR,
            /* 112 */YY_NOT_ACCEPT,
            /* 113 */YY_NO_ANCHOR,
            /* 114 */YY_NOT_ACCEPT,
            /* 115 */YY_NO_ANCHOR,
            /* 116 */YY_NOT_ACCEPT,
            /* 117 */YY_NO_ANCHOR,
            /* 118 */YY_NOT_ACCEPT,
            /* 119 */YY_NO_ANCHOR,
            /* 120 */YY_NOT_ACCEPT,
            /* 121 */YY_NO_ANCHOR,
            /* 122 */YY_NOT_ACCEPT,
            /* 123 */YY_NO_ANCHOR,
            /* 124 */YY_NOT_ACCEPT,
            /* 125 */YY_NO_ANCHOR,
            /* 126 */YY_NOT_ACCEPT,
            /* 127 */YY_NO_ANCHOR,
            /* 128 */YY_NO_ANCHOR,
            /* 129 */YY_NO_ANCHOR,
            /* 130 */YY_NO_ANCHOR,
            /* 131 */YY_NO_ANCHOR,
            /* 132 */YY_NO_ANCHOR,
            /* 133 */YY_NO_ANCHOR,
            /* 134 */YY_NO_ANCHOR,
            /* 135 */YY_NO_ANCHOR,
            /* 136 */YY_NO_ANCHOR,
            /* 137 */YY_NO_ANCHOR,
            /* 138 */YY_NO_ANCHOR,
            /* 139 */YY_NO_ANCHOR,
            /* 140 */YY_NO_ANCHOR,
            /* 141 */YY_NO_ANCHOR,
            /* 142 */YY_NO_ANCHOR,
            /* 143 */YY_NO_ANCHOR,
            /* 144 */YY_NO_ANCHOR,
            /* 145 */YY_NO_ANCHOR,
            /* 146 */YY_NO_ANCHOR,
            /* 147 */YY_NO_ANCHOR,
            /* 148 */YY_NO_ANCHOR,
            /* 149 */YY_NO_ANCHOR,
            /* 150 */YY_NO_ANCHOR,
            /* 151 */YY_NO_ANCHOR,
            /* 152 */YY_NO_ANCHOR,
            /* 153 */YY_NO_ANCHOR,
            /* 154 */YY_NO_ANCHOR,
            /* 155 */YY_NO_ANCHOR,
            /* 156 */YY_NO_ANCHOR,
            /* 157 */YY_NO_ANCHOR,
            /* 158 */YY_NO_ANCHOR,
            /* 159 */YY_NO_ANCHOR,
            /* 160 */YY_NO_ANCHOR,
            /* 161 */YY_NO_ANCHOR,
            /* 162 */YY_NO_ANCHOR,
            /* 163 */YY_NO_ANCHOR,
            /* 164 */YY_NO_ANCHOR,
            /* 165 */YY_NO_ANCHOR,
            /* 166 */YY_NO_ANCHOR,
            /* 167 */YY_NO_ANCHOR,
            /* 168 */YY_NO_ANCHOR,
            /* 169 */YY_NO_ANCHOR,
            /* 170 */YY_NO_ANCHOR,
            /* 171 */YY_NO_ANCHOR,
            /* 172 */YY_NO_ANCHOR,
            /* 173 */YY_NO_ANCHOR,
            /* 174 */YY_NO_ANCHOR,
            /* 175 */YY_NO_ANCHOR,
            /* 176 */YY_NO_ANCHOR,
            /* 177 */YY_NO_ANCHOR,
            /* 178 */YY_NO_ANCHOR,
            /* 179 */YY_NO_ANCHOR,
            /* 180 */YY_NO_ANCHOR,
            /* 181 */YY_NO_ANCHOR,
            /* 182 */YY_NO_ANCHOR,
            /* 183 */YY_NO_ANCHOR,
            /* 184 */YY_NO_ANCHOR,
            /* 185 */YY_NOT_ACCEPT,
            /* 186 */YY_NOT_ACCEPT,
            /* 187 */YY_NO_ANCHOR,
            /* 188 */YY_NOT_ACCEPT,
            /* 189 */YY_NO_ANCHOR,
            /* 190 */YY_NOT_ACCEPT,
            /* 191 */YY_NO_ANCHOR,
            /* 192 */YY_NO_ANCHOR,
            /* 193 */YY_NO_ANCHOR,
            /* 194 */YY_NO_ANCHOR,
            /* 195 */YY_NO_ANCHOR,
            /* 196 */YY_NO_ANCHOR,
            /* 197 */YY_NO_ANCHOR,
            /* 198 */YY_NO_ANCHOR,
            /* 199 */YY_NO_ANCHOR,
            /* 200 */YY_NO_ANCHOR,
            /* 201 */YY_NO_ANCHOR,
            /* 202 */YY_NO_ANCHOR,
            /* 203 */YY_NO_ANCHOR,
            /* 204 */YY_NO_ANCHOR,
            /* 205 */YY_NO_ANCHOR,
            /* 206 */YY_NO_ANCHOR,
            /* 207 */YY_NO_ANCHOR,
            /* 208 */YY_NO_ANCHOR,
            /* 209 */YY_NO_ANCHOR,
            /* 210 */YY_NO_ANCHOR,
            /* 211 */YY_NO_ANCHOR,
            /* 212 */YY_NO_ANCHOR,
            /* 213 */YY_NO_ANCHOR,
            /* 214 */YY_NO_ANCHOR,
            /* 215 */YY_NO_ANCHOR,
            /* 216 */YY_NO_ANCHOR,
            /* 217 */YY_NO_ANCHOR,
            /* 218 */YY_NO_ANCHOR,
            /* 219 */YY_NO_ANCHOR,
            /* 220 */YY_NO_ANCHOR,
            /* 221 */YY_NO_ANCHOR,
            /* 222 */YY_NO_ANCHOR,
            /* 223 */YY_NO_ANCHOR,
            /* 224 */YY_NO_ANCHOR,
            /* 225 */YY_NO_ANCHOR,
            /* 226 */YY_NO_ANCHOR,
            /* 227 */YY_NO_ANCHOR,
            /* 228 */YY_NO_ANCHOR,
            /* 229 */YY_NO_ANCHOR,
            /* 230 */YY_NO_ANCHOR,
            /* 231 */YY_NO_ANCHOR,
            /* 232 */YY_NO_ANCHOR,
            /* 233 */YY_NO_ANCHOR };
    static private int yy_cmap[] = unpackFromString(1, 65538, "54:9,27:2,54,27:2,54:18,27,17,53,54,15,54:2,55,25,26,1,3,11,4,13,2,56:10,10" + ",54,18,16,19,54,12,44,57:3,46,57:3,51,57:4,48,52,43,57,47,50,45,57:3,49,57:" + "2,41,54,42,54,58,54,35,38,29,5,21,39,33,36,6,57,20,37,8,28,9,30,57,31,32,23" + ",34,7,40,24,22,57,54,14,54:58,60,54:8,57:23,54,57:31,54,57:58,58:2,57:11,58" + ":2,57:8,58,57:53,58,57:68,58:9,57:36,58:3,57:2,58:4,57:30,58:56,57:89,58:18" + ",57:7,58:62,60:70,54:26,60:2,54:14,58:14,54,58:7,57,58,57:3,58,57,58,57:20," + "58,57:44,58,57:7,58:3,57,58,57,58,57,58,57,58,57:18,58:13,57:12,58,57:66,58" + ",57:12,58,57:36,58:14,57:53,58:2,57:2,58:2,57:2,58:3,57:28,58:2,57:8,58:2,5" + "7:2,58:55,57:38,58:2,57,58:7,57:38,58:73,57:27,58:5,57:3,58:46,57:26,58:6,5" + "7:10,58:21,59:10,58:7,57:71,58:2,57:5,58,57:15,58,57:4,58,57,58:15,57:2,58:" + "9,59:10,58:523,57:53,58:3,57,58:26,57:10,58:4,59:10,58:21,57:8,58:2,57:2,58" + ":2,57:22,58,57:7,58,57,58:3,57:4,58:34,57:2,58,57:3,58:4,59:10,57:2,58:19,5" + "7:6,58:4,57:2,58:2,57:22,58,57:7,58,57:2,58,57:2,58,57:2,58:31,57:4,58,57,5" + "8:7,59:10,58:2,57:3,58:16,57:7,58,57,58,57:3,58,57:22,58,57:7,58,57:2,58,57" + ":5,58:3,57,58:34,57,58:5,59:10,58:21,57:8,58:2,57:2,58:2,57:22,58,57:7,58,5" + "7:2,58:2,57:4,58:3,57,58:30,57:2,58,57:3,58:4,59:10,58:21,57:6,58:3,57:3,58" + ",57:4,58:3,57:2,58,57,58,57:2,58:3,57:2,58:3,57:3,58:3,57:8,58,57:3,58:45,5" + "9:9,58:21,57:8,58,57:3,58,57:23,58,57:10,58,57:5,58:38,57:2,58:4,59:10,58:2" + "1,57:8,58,57:3,58,57:23,58,57:10,58,57:5,58:36,57,58,57:2,58:4,59:10,58:21," + "57:8,58,57:3,58,57:23,58,57:16,58:38,57:2,58:4,59:10,58:145,57:46,58,57,58," + "57:2,58:12,57:6,58:10,59:10,58:39,57:2,58,57,58:2,57:2,58,57,58:2,57,58:6,5" + "7:4,58,57:7,58,57:3,58,57,58,57,58:2,57:2,58,57:2,58,57,58,57:2,58:9,57,58:" + "2,57:5,58:11,59:10,58:70,59:10,58:22,57:8,58,57:33,58:310,57:38,58:10,57:39" + ",58:9,57,58,57:2,58,57:3,58,57,58,57:2,58,57:5,58:41,57,58,57,58,57,58:11,5" + "7,58,57,58,57,58:3,57:2,58:3,57,58:5,57:3,58,57,58,57,58,57,58,57,58:3,57:2" + ",58:3,57:2,58,57,58:40,57,58:9,57,58:2,57,58:2,57:2,58:7,57:2,58,57,58,57:7" + ",58:40,57,58:4,57,58:8,57,58:3078,57:156,58:4,57:90,58:6,57:22,58:2,57:6,58" + ":2,57:38,58:2,57:6,58:2,57:8,58,57,58,57,58,57,58,57:31,58:2,57:53,58,57:7," + "58,57,58:3,57:3,58,57:7,58:3,57:4,58:2,57:6,58:4,57:13,58:5,57:3,58,57:7,58" + ":3,54:12,58:2,54:98,58:182,57,58:3,57:2,58:2,57,58:81,57:3,58:13,54:2672,58" + ":1008,54:17,58:64,57:84,58:12,57:90,58:10,57:40,58:31443,57:11172,58:92,54:" + "8448,58:1232,54:32,58:526,54:2,0:2")[0];

    static private int yy_rmap[] = unpackFromString(1, 234, "0,1:2,2,1:2,3,4,1,5,6,1:3,7,8,1:5,9,1,10:2,1:3,11,1:5,12,10,1,10:5,1:2,10,1" + ":2,13,1,10,1,14,10,15,16,1:2,10:4,17,1:2,18,19,20,21,22,23,24,25,26,27,1,25" + ",10,28:2,29,5,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,5" + "0,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,7" + "5,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,1" + "00,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118," + "119,120,121,122,123,124,125,126,127,128,129,130,131,132,10,133,134,135,136," + "137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155" + ",156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,17" + "4,175,176,177,178,179,180,181")[0];

    static private int yy_nxt[][] = unpackFromString(182, 61, "1,2,3,4,5,6,65,184,204,70,7,8,9,10,11,12,13,66,14,15,211,184:2,215,184,16,1" + "7,18,218,220,221,184,222,184:2,223,184:3,224,184,19,20,184:10,71,74,77,21,1" + "84:2,67,74,-1:63,22,-1:62,184:2,73,184:3,64,-1:2,76,-1:6,184,79,184:3,-1:3," + "184:13,-1:2,184:10,-1:3,76,184,76:3,-1:10,25,-1:51,26,-1:72,27,-1:42,28,-1:" + "2,28,-1:17,30,-1:26,69,-1:2,72,-1:30,31,-1:57,34,-1:42,21,-1:2,21,-1:5,184:" + "6,64,-1:2,76,-1:6,184:5,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:56,28,-" + "1:2,28,-1:57,34,-1:2,34,-1:5,155,184:5,64,-1:2,76,-1:6,184:5,-1:3,184:13,-1" + ":2,184:10,-1:3,76,184,76:3,-1:4,209,184:5,64,-1:2,76,-1:6,184:5,-1:3,184:13" + ",-1:2,184:10,-1:3,76,184,76:3,-1:4,233,184:5,64,-1:2,76,-1:6,184:5,-1:3,184" + ":13,-1:2,184:10,-1:3,76,184,76:3,-1:4,158,184:5,64,-1:2,76,-1:6,184:5,-1:3," + "184:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:5,122,-1" + ",124,183,184:12,-1:2,184:10,-1:3,76,184,76:3,-1,36,-1:3,103:5,-1:2,80,-1:7," + "103:5,-1:3,103:13,-1:2,103:10,-1:4,103:3,-1:5,184,23,184:4,64,-1:2,76,-1:6," + "184:5,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:16,29,-1:48,184:6,64,-1:2" + ",68,-1:6,184:5,-1:3,184:13,-1:2,184:10,-1:3,67,184,76,67,76,-1:4,184:6,64,-" + "1:2,76,-1:6,184:5,-1:3,184:13,-1:2,184:10,-1:3,68,184,76,68,76,-1:44,82,-1:" + "20,184:6,64,-1:2,76,-1:6,184:5,-1:3,184:3,24,184:9,-1:2,184:10,-1:3,76,184," + "76:3,-1,75:52,32,75:7,-1:49,84,-1:15,184:3,35,184:2,64,-1:2,76,-1:6,184:5,-" + "1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1,78:54,33,78:5,-1:4,184:6,64,-1:2" + ",76,-1:6,184:5,-1:3,184:4,105,184:8,-1:2,184:10,-1:3,76,184,76:3,-1:4,184,3" + "7,184:4,64,-1:2,76,-1:6,184:5,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:4" + "5,185,-1:19,184:6,64,-1:2,76,-1:6,184:2,38,184:2,-1:3,184:13,-1:2,184:10,-1" + ":3,76,184,76:3,-1:43,86,-1:21,184:6,64,-1:2,76,-1:6,184:4,191,-1:3,184:13,-" + "1:2,184:10,-1:3,76,184,76:3,-1:47,186,-1:17,184,107,184:4,64,-1:2,76,-1:6,1" + "84:5,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:46,96,-1:18,184:4,193,184," + "64,-1:2,76,-1:6,184:5,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:26,42,-1:" + "38,184:2,205,184:3,64,-1:2,76,-1:6,184:5,-1:3,184:13,-1:2,184:10,-1:3,76,18" + "4,76:3,-1:25,100,-1,92,-1:37,184:5,192,64,-1:2,76,-1:6,184,228,184:3,-1:3,1" + "84:13,-1:2,184:10,-1:3,76,184,76:3,-1:26,43,-1:38,184:6,64,-1:2,76,-1:6,184" + ":5,-1:3,184:3,206,184:9,-1:2,184:10,-1:3,76,184,76:3,-1:47,104,-1:17,184:6," + "64,-1:2,76,-1:6,184:5,-1:3,184:9,111,184:3,-1:2,184:10,-1:3,76,184,76:3,-1:" + "50,190,-1:14,184:6,64,-1:2,76,-1:6,184:3,113,184,-1:3,184:13,-1:2,184:10,-1" + ":3,76,184,76:3,-1:26,45,-1:38,184,39,184:4,64,-1:2,76,-1:6,184:5,-1:3,184,2" + "12,184:11,-1:2,184:10,-1:3,76,184,76:3,-1:26,46,-1:38,103:6,-1:3,103,-1:6,1" + "03:5,-1:3,103:13,-1:2,103:10,-1:3,103:5,-1:48,106,-1:16,184:6,64,-1:2,76,-1" + ":6,184:5,-1:3,184,216,184:11,-1:2,184:10,-1:3,76,184,76:3,-1:19,48,-1:45,18" + "4:6,64,-1:2,76,-1:6,184,119,184:3,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3," + "-1:51,114,-1:13,184:4,123,184,64,-1:2,76,-1:6,184:5,-1:3,184:13,-1:2,184:10" + ",-1:3,76,184,76:3,-1:26,50,-1:38,184:6,64,-1:2,76,-1:6,184:5,-1:3,184:11,40" + ",184,-1:2,184:10,-1:3,76,184,76:3,-1:25,116,-1,112,-1:37,184:6,64,-1:2,76,-" + "1:6,184:5,-1:3,184:3,128,184:9,-1:2,184:10,-1:3,76,184,76:3,-1:52,118,-1:12" + ",184:6,64,-1:2,76,-1:6,184:5,-1:3,184:9,129,184:3,-1:2,184:10,-1:3,76,184,7" + "6:3,-1:26,55,-1:38,184:6,64,-1:2,76,-1:6,184:3,130,184,90,-1,92,184:13,-1:2" + ",184:10,-1:3,76,184,76:3,-1:48,120,-1:16,184:6,64,-1:2,76,-1:6,184,131,184:" + "3,94,-1,188,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:19,56,-1:45,184:6,64,-1:" + "2,76,-1:6,184:5,-1:3,184:4,132,184:8,-1:2,184:10,-1:3,76,184,76:3,-1:26,62," + "-1:38,184:6,64,-1:2,76,-1:6,184,208,184:3,-1:3,184:13,-1:2,184:10,-1:3,76,1" + "84,76:3,-1:25,126,-1,124,-1:37,184,41,184:4,64,-1:2,76,-1:6,184:5,-1:3,184:" + "13,-1:2,184:10,-1:3,76,184,76:3,-1:26,63,-1:38,184:6,64,-1:2,76,-1:6,184:5," + "-1:3,135,184:12,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:2,136,184:3,64,-1:2,7" + "6,-1:6,184:5,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:5,138,64,-1:" + "2,76,-1:6,184:5,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2" + ",76,-1:6,184:3,130,184,-1:2,92,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184" + ":6,64,-1:2,76,-1:6,184,131,184:3,-1:2,188,184:13,-1:2,184:10,-1:3,76,184,76" + ":3,-1:4,184:6,64,-1:2,76,-1:6,184:5,-1:3,184:2,139,184:10,-1:2,184:10,-1:3," + "76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:5,-1:3,184:4,197,184:8,-1:2,184:" + "10,-1:3,76,184,76:3,-1:4,184,140,184:4,64,-1:2,76,-1:6,184:5,-1:3,184:13,-1" + ":2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:3,44,184,-1:3,184" + ":13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:5,-1:3,184:" + "10,141,184:2,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:3," + "142,184,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6" + ",184:5,-1:3,184:12,225,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-" + "1:6,184:5,-1:3,184:7,143,184:5,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:2,145," + "184:3,64,-1:2,76,-1:6,184:5,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,1" + "84:6,64,-1:2,76,-1:6,184:5,-1:3,184:6,146,184:6,-1:2,184:10,-1:3,76,184,76:" + "3,-1:4,184:5,147,64,-1:2,76,-1:6,184:5,-1:3,184:13,-1:2,184:10,-1:3,76,184," + "76:3,-1:4,184:6,64,-1:2,76,-1:6,184:5,-1:3,184,148,184:11,-1:2,184:10,-1:3," + "76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:3,149,184,110,-1,112,184:13,-1:2" + ",184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:5,-1:3,150,184:12,-" + "1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:3,151,184,-1:3,1" + "84:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:5,-1:3,18" + "4:3,47,184:9,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184,49" + ",184:3,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6," + "184:3,149,184,-1:2,112,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1" + ":2,76,-1:6,184:5,-1:3,184:5,51,184:7,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:" + "6,64,-1:2,76,-1:6,184,52,184:3,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:" + "4,184:6,64,-1:2,76,-1:6,184:5,-1:3,184:5,53,184:7,-1:2,184:10,-1:3,76,184,7" + "6:3,-1:4,184:6,64,-1:2,76,-1:6,184:3,54,184,-1:3,184:13,-1:2,184:10,-1:3,76" + ",184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:5,-1:3,184:5,156,184:7,-1:2,184:10" + ",-1:3,76,184,76:3,-1:4,184:5,157,64,-1:2,76,-1:6,184:5,-1:3,184:13,-1:2,184" + ":10,-1:3,76,184,76:3,-1:4,159,184:5,64,-1:2,76,-1:6,184:5,-1:3,184:13,-1:2," + "184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:5,-1:3,184:3,160,184" + ":9,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:5,161,64,-1:2,76,-1:6,184:5,-1:3,1" + "84:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:2,162,184:3,64,-1:2,76,-1:6,184" + ":5,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,213,184:5,64,-1:2,76,-1:6," + "184:5,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,1" + "84:5,-1:3,184:3,226,184:9,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,7" + "6,-1:6,184:5,-1:3,217,184:12,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:" + "2,76,-1:6,184:5,-1:3,184:10,164,184:2,-1:2,184:10,-1:3,76,184,76:3,-1:4,184" + ":6,64,-1:2,76,-1:6,184:5,-1:3,184:9,167,184:3,-1:2,184:10,-1:3,76,184,76:3," + "-1:4,184:6,64,-1:2,76,-1:6,184,168,184:3,-1:3,184:13,-1:2,184:10,-1:3,76,18" + "4,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:3,170,184,-1:3,184:13,-1:2,184:10,-1:" + "3,76,184,76:3,-1:4,184:2,171,184:3,64,-1:2,76,-1:6,184:5,-1:3,184:13,-1:2,1" + "84:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:5,-1:3,184:9,172,184:" + "3,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184,173,184:3,-1:" + "3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:5,-1:3" + ",184:3,174,184:9,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,18" + "4:5,-1:3,175,184:12,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6" + ",184:5,-1:3,184:11,57,184,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,7" + "6,-1:6,184:5,-1:3,184:9,177,184:3,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,6" + "4,-1:2,76,-1:6,184:5,-1:3,184:6,178,184:6,-1:2,184:10,-1:3,76,184,76:3,-1:4" + ",184:6,64,-1:2,76,-1:6,184:5,-1:3,184:5,58,184:7,-1:2,184:10,-1:3,76,184,76" + ":3,-1:4,184:6,64,-1:2,76,-1:6,184:5,-1:3,184:5,59,184:7,-1:2,184:10,-1:3,76" + ",184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:5,-1:3,184:11,60,184,-1:2,184:10,-" + "1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:5,-1:3,184,179,184:11,-1:2,1" + "84:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:3,180,184,-1:3,184:13" + ",-1:2,184:10,-1:3,76,184,76:3,-1:4,184:2,181,184:3,64,-1:2,76,-1:6,184:5,-1" + ":3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:5,182,64,-1:2,76,-1:6,184:5" + ",-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:5," + "-1:3,61,184:12,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:" + "5,-1:2,124,183,184:12,-1:2,184:10,-1:3,76,184,76:3,-1:45,88,-1:61,98,-1:18," + "184:4,109,184,64,-1:2,76,-1:6,184:5,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:" + "3,-1:25,102,-1,188,-1:37,184:6,64,-1:2,76,-1:6,184:5,-1:3,184:9,115,184:3,-" + "1:2,184:10,-1:3,76,184,76:3,-1:50,108,-1:14,184:6,64,-1:2,76,-1:6,184:3,117" + ",184,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,18" + "4:5,-1:3,184,195,184:11,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76," + "-1:6,184,121,184:3,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-" + "1:2,76,-1:6,184:5,-1:3,184:4,137,184:8,-1:2,184:10,-1:3,76,184,76:3,-1:4,18" + "4:6,64,-1:2,76,-1:6,184,133,184:3,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3," + "-1:4,184:6,64,-1:2,76,-1:6,184:5,-1:3,198,184:12,-1:2,184:10,-1:3,76,184,76" + ":3,-1:4,184:6,64,-1:2,76,-1:6,184:5,-1:3,184:4,229,184:8,-1:2,184:10,-1:3,7" + "6,184,76:3,-1:4,184,200,184:4,64,-1:2,76,-1:6,184:5,-1:3,184:13,-1:2,184:10" + ",-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:3,144,184,-1:3,184:13,-1:2" + ",184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:5,-1:3,184:7,210,18" + "4:5,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:5,-1:3,152," + "184:12,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:2,163,184:3,64,-1:2,76,-1:6,18" + "4:5,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184" + ":5,-1:3,176,184:12,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:5,81,64,-1:2,76,-1" + ":6,184:5,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:" + "6,184:5,-1:3,184:9,125,184:3,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:" + "2,76,-1:6,184,127,184:3,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6" + ",64,-1:2,76,-1:6,184,134,184:3,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:" + "4,184:6,64,-1:2,76,-1:6,184:5,-1:3,199,184:12,-1:2,184:10,-1:3,76,184,76:3," + "-1:4,184:6,64,-1:2,76,-1:6,184:5,-1:3,184:4,202,184:8,-1:2,184:10,-1:3,76,1" + "84,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:5,-1:3,153,184:12,-1:2,184:10,-1:3,7" + "6,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184,83,184:3,-1:3,184:13,-1:2,184:10," + "-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184,194,184:3,-1:3,184:13,-1:2," + "184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:5,-1:3,184:4,165,184" + ":8,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:5,-1:3,154,1" + "84:12,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184,85,184:3," + "-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184,196" + ",184:3,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6," + "184:5,-1:3,184:4,166,184:8,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:5,87,64,-1" + ":2,76,-1:6,184:5,-1:3,184:7,89,184:5,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:" + "6,64,-1:2,76,-1:6,184:5,-1:3,184:4,169,184:8,-1:2,184:10,-1:3,76,184,76:3,-" + "1:4,184:5,187,64,-1:2,76,-1:6,184:5,-1:3,184:8,91,184:4,-1:2,184:10,-1:3,76" + ",184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:5,-1:3,184:3,93,184:3,95,184:5,-1:" + "2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184,97,184:3,-1:3,184:" + "13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:3,99,184,-1:" + "3,101,184:12,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:5,189,64,-1:2,76,-1:6,18" + "4:5,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:2,201,184:3,64,-1:2,7" + "6,-1:6,184:5,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,219,184:5,64,-1:" + "2,76,-1:6,184:5,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:2,203,184" + ":3,64,-1:2,76,-1:6,184:5,-1:3,184:13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:" + "6,64,-1:2,76,-1:6,184:5,-1:3,184,207,184:11,-1:2,184:10,-1:3,76,184,76:3,-1" + ":4,184:2,214,184:3,64,-1:2,76,-1:6,184:5,-1:3,184:13,-1:2,184:10,-1:3,76,18" + "4,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:5,-1:3,184:9,227,184:3,-1:2,184:10,-1" + ":3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:5,-1:3,184:10,230,184:2,-1:2," + "184:10,-1:3,76,184,76:3,-1:4,184:2,231,184:3,64,-1:2,76,-1:6,184:5,-1:3,184" + ":13,-1:2,184:10,-1:3,76,184,76:3,-1:4,184:6,64,-1:2,76,-1:6,184:5,-1:3,184:" + "4,232,184:8,-1:2,184:10,-1:3,76,184,76:3");

    public com.sun.java_cup.internal.runtime.Symbol next_token() throws java.io.IOException, Exception

    {
        int yy_lookahead;
        int yy_anchor = YY_NO_ANCHOR;
        int yy_state = yy_state_dtrans[yy_lexical_state];
        int yy_next_state = YY_NO_STATE;
        int yy_last_accept_state = YY_NO_STATE;
        boolean yy_initial = true;
        int yy_this_accept;

        yy_mark_start();
        yy_this_accept = yy_acpt[yy_state];
        if (YY_NOT_ACCEPT != yy_this_accept) {
            yy_last_accept_state = yy_state;
            yy_mark_end();
        }
        while (true) {
            if (yy_initial && yy_at_bol)
                yy_lookahead = YY_BOL;
            else
                yy_lookahead = yy_advance();
            yy_next_state = YY_F;
            yy_next_state = yy_nxt[yy_rmap[yy_state]][yy_cmap[yy_lookahead]];
            if (YY_EOF == yy_lookahead && true == yy_initial) {

                return newSymbol(sym.EOF);
            }
            if (YY_F != yy_next_state) {
                yy_state = yy_next_state;
                yy_initial = false;
                yy_this_accept = yy_acpt[yy_state];
                if (YY_NOT_ACCEPT != yy_this_accept) {
                    yy_last_accept_state = yy_state;
                    yy_mark_end();
                }
            } else {
                if (YY_NO_STATE == yy_last_accept_state) {
                    throw (new Error("Lexical Error: Unmatched Input."));
                } else {
                    yy_anchor = yy_acpt[yy_last_accept_state];
                    if (0 != (YY_END & yy_anchor)) {
                        yy_move_end();
                    }
                    yy_to_mark();
                    switch (yy_last_accept_state) {
                        case 1:

                        case -2:
                            break;
                        case 2: {
                            return newSymbol(sym.STAR);
                        }
                        case -3:
                            break;
                        case 3: {
                            return newSymbol(sym.SLASH);
                        }
                        case -4:
                            break;
                        case 4: {
                            return newSymbol(sym.PLUS);
                        }
                        case -5:
                            break;
                        case 5: {
                            return newSymbol(sym.MINUS);
                        }
                        case -6:
                            break;
                        case 6: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -7:
                            break;
                        case 7: {
                            throw new Exception(yytext());
                        }
                        case -8:
                            break;
                        case 8: {
                            return newSymbol(sym.COMMA);
                        }
                        case -9:
                            break;
                        case 9: {
                            return newSymbol(sym.ATSIGN);
                        }
                        case -10:
                            break;
                        case 10: {
                            return newSymbol(sym.DOT);
                        }
                        case -11:
                            break;
                        case 11: {
                            return newSymbol(sym.VBAR);
                        }
                        case -12:
                            break;
                        case 12: {
                            return newSymbol(sym.DOLLAR);
                        }
                        case -13:
                            break;
                        case 13: {
                            return newSymbol(sym.EQ);
                        }
                        case -14:
                            break;
                        case 14: {
                            return newSymbol(sym.LT);
                        }
                        case -15:
                            break;
                        case 15: {
                            return newSymbol(sym.GT);
                        }
                        case -16:
                            break;
                        case 16: {
                            return newSymbol(sym.LPAREN);
                        }
                        case -17:
                            break;
                        case 17: {
                            return newSymbol(sym.RPAREN);
                        }
                        case -18:
                            break;
                        case 18: { /* ignore white space. */
                        }
                        case -19:
                            break;
                        case 19: {
                            return newSymbol(sym.LBRACK);
                        }
                        case -20:
                            break;
                        case 20: {
                            return newSymbol(sym.RBRACK);
                        }
                        case -21:
                            break;
                        case 21: {
                            return newSymbol(sym.INT, new Long(yytext()));
                        }
                        case -22:
                            break;
                        case 22: {
                            return newSymbol(sym.DSLASH);
                        }
                        case -23:
                            break;
                        case 23: {
                            return disambiguateAxisOrFunction(sym.ID);
                        }
                        case -24:
                            break;
                        case 24: {
                            return disambiguateOperator(sym.OR);
                        }
                        case -25:
                            break;
                        case 25: {
                            return newSymbol(sym.DCOLON);
                        }
                        case -26:
                            break;
                        case 26: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -27:
                            break;
                        case 27: {
                            return newSymbol(sym.DDOT);
                        }
                        case -28:
                            break;
                        case 28: {
                            return newSymbol(sym.REAL, new Double(yytext()));
                        }
                        case -29:
                            break;
                        case 29: {
                            return newSymbol(sym.NE);
                        }
                        case -30:
                            break;
                        case 30: {
                            return newSymbol(sym.LE);
                        }
                        case -31:
                            break;
                        case 31: {
                            return newSymbol(sym.GE);
                        }
                        case -32:
                            break;
                        case 32: {
                            return newSymbol(sym.Literal, yytext().substring(1, yytext().length() - 1));
                        }
                        case -33:
                            break;
                        case 33: {
                            return newSymbol(sym.Literal, yytext().substring(1, yytext().length() - 1));
                        }
                        case -34:
                            break;
                        case 34: {
                            return newSymbol(sym.REAL, new Double(yytext()));
                        }
                        case -35:
                            break;
                        case 35: {
                            return disambiguateOperator(sym.DIV);
                        }
                        case -36:
                            break;
                        case 36: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -37:
                            break;
                        case 37: {
                            return disambiguateOperator(sym.MOD);
                        }
                        case -38:
                            break;
                        case 38: {
                            return disambiguateAxisOrFunction(sym.KEY);
                        }
                        case -39:
                            break;
                        case 39: {
                            return disambiguateOperator(sym.AND);
                        }
                        case -40:
                            break;
                        case 40: {
                            return disambiguateAxisOrFunction(sym.SELF);
                        }
                        case -41:
                            break;
                        case 41: {
                            return disambiguateAxisOrFunction(sym.CHILD);
                        }
                        case -42:
                            break;
                        case 42: {
                            return newSymbol(sym.TEXT);
                        }
                        case -43:
                            break;
                        case 43: {
                            return newSymbol(sym.NODE);
                        }
                        case -44:
                            break;
                        case 44: {
                            return disambiguateAxisOrFunction(sym.PARENT);
                        }
                        case -45:
                            break;
                        case 45: {
                            return newSymbol(sym.TEXT);
                        }
                        case -46:
                            break;
                        case 46: {
                            return newSymbol(sym.NODE);
                        }
                        case -47:
                            break;
                        case 47: {
                            return disambiguateAxisOrFunction(sym.ANCESTOR);
                        }
                        case -48:
                            break;
                        case 48: {
                            initialize();
                            return new Symbol(sym.PATTERN);
                        }
                        case -49:
                            break;
                        case 49: {
                            return disambiguateAxisOrFunction(sym.NAMESPACE);
                        }
                        case -50:
                            break;
                        case 50: {
                            return newSymbol(sym.COMMENT);
                        }
                        case -51:
                            break;
                        case 51: {
                            return disambiguateAxisOrFunction(sym.PRECEDING);
                        }
                        case -52:
                            break;
                        case 52: {
                            return disambiguateAxisOrFunction(sym.ATTRIBUTE);
                        }
                        case -53:
                            break;
                        case 53: {
                            return disambiguateAxisOrFunction(sym.FOLLOWING);
                        }
                        case -54:
                            break;
                        case 54: {
                            return disambiguateAxisOrFunction(sym.DESCENDANT);
                        }
                        case -55:
                            break;
                        case 55: {
                            return newSymbol(sym.COMMENT);
                        }
                        case -56:
                            break;
                        case 56: {
                            initialize();
                            return new Symbol(sym.EXPRESSION);
                        }
                        case -57:
                            break;
                        case 57: {
                            return disambiguateAxisOrFunction(sym.ANCESTORORSELF);
                        }
                        case -58:
                            break;
                        case 58: {
                            return disambiguateAxisOrFunction(sym.PRECEDINGSIBLING);
                        }
                        case -59:
                            break;
                        case 59: {
                            return disambiguateAxisOrFunction(sym.FOLLOWINGSIBLING);
                        }
                        case -60:
                            break;
                        case 60: {
                            return disambiguateAxisOrFunction(sym.DESCENDANTORSELF);
                        }
                        case -61:
                            break;
                        case 61: {
                            return disambiguateAxisOrFunction(sym.PIPARAM);
                        }
                        case -62:
                            break;
                        case 62: {
                            return newSymbol(sym.PI);
                        }
                        case -63:
                            break;
                        case 63: {
                            return newSymbol(sym.PI);
                        }
                        case -64:
                            break;
                        case 65: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -65:
                            break;
                        case 66: {
                            throw new Exception(yytext());
                        }
                        case -66:
                            break;
                        case 67: {
                            return newSymbol(sym.INT, new Long(yytext()));
                        }
                        case -67:
                            break;
                        case 68: {
                            return newSymbol(sym.REAL, new Double(yytext()));
                        }
                        case -68:
                            break;
                        case 70: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -69:
                            break;
                        case 71: {
                            throw new Exception(yytext());
                        }
                        case -70:
                            break;
                        case 73: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -71:
                            break;
                        case 74: {
                            throw new Exception(yytext());
                        }
                        case -72:
                            break;
                        case 76: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -73:
                            break;
                        case 77: {
                            throw new Exception(yytext());
                        }
                        case -74:
                            break;
                        case 79: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -75:
                            break;
                        case 81: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -76:
                            break;
                        case 83: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -77:
                            break;
                        case 85: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -78:
                            break;
                        case 87: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -79:
                            break;
                        case 89: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -80:
                            break;
                        case 91: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -81:
                            break;
                        case 93: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -82:
                            break;
                        case 95: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -83:
                            break;
                        case 97: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -84:
                            break;
                        case 99: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -85:
                            break;
                        case 101: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -86:
                            break;
                        case 103: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -87:
                            break;
                        case 105: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -88:
                            break;
                        case 107: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -89:
                            break;
                        case 109: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -90:
                            break;
                        case 111: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -91:
                            break;
                        case 113: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -92:
                            break;
                        case 115: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -93:
                            break;
                        case 117: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -94:
                            break;
                        case 119: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -95:
                            break;
                        case 121: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -96:
                            break;
                        case 123: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -97:
                            break;
                        case 125: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -98:
                            break;
                        case 127: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -99:
                            break;
                        case 128: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -100:
                            break;
                        case 129: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -101:
                            break;
                        case 130: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -102:
                            break;
                        case 131: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -103:
                            break;
                        case 132: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -104:
                            break;
                        case 133: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -105:
                            break;
                        case 134: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -106:
                            break;
                        case 135: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -107:
                            break;
                        case 136: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -108:
                            break;
                        case 137: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -109:
                            break;
                        case 138: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -110:
                            break;
                        case 139: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -111:
                            break;
                        case 140: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -112:
                            break;
                        case 141: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -113:
                            break;
                        case 142: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -114:
                            break;
                        case 143: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -115:
                            break;
                        case 144: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -116:
                            break;
                        case 145: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -117:
                            break;
                        case 146: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -118:
                            break;
                        case 147: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -119:
                            break;
                        case 148: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -120:
                            break;
                        case 149: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -121:
                            break;
                        case 150: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -122:
                            break;
                        case 151: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -123:
                            break;
                        case 152: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -124:
                            break;
                        case 153: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -125:
                            break;
                        case 154: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -126:
                            break;
                        case 155: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -127:
                            break;
                        case 156: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -128:
                            break;
                        case 157: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -129:
                            break;
                        case 158: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -130:
                            break;
                        case 159: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -131:
                            break;
                        case 160: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -132:
                            break;
                        case 161: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -133:
                            break;
                        case 162: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -134:
                            break;
                        case 163: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -135:
                            break;
                        case 164: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -136:
                            break;
                        case 165: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -137:
                            break;
                        case 166: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -138:
                            break;
                        case 167: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -139:
                            break;
                        case 168: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -140:
                            break;
                        case 169: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -141:
                            break;
                        case 170: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -142:
                            break;
                        case 171: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -143:
                            break;
                        case 172: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -144:
                            break;
                        case 173: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -145:
                            break;
                        case 174: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -146:
                            break;
                        case 175: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -147:
                            break;
                        case 176: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -148:
                            break;
                        case 177: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -149:
                            break;
                        case 178: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -150:
                            break;
                        case 179: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -151:
                            break;
                        case 180: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -152:
                            break;
                        case 181: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -153:
                            break;
                        case 182: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -154:
                            break;
                        case 183: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -155:
                            break;
                        case 184: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -156:
                            break;
                        case 187: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -157:
                            break;
                        case 189: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -158:
                            break;
                        case 191: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -159:
                            break;
                        case 192: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -160:
                            break;
                        case 193: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -161:
                            break;
                        case 194: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -162:
                            break;
                        case 195: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -163:
                            break;
                        case 196: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -164:
                            break;
                        case 197: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -165:
                            break;
                        case 198: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -166:
                            break;
                        case 199: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -167:
                            break;
                        case 200: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -168:
                            break;
                        case 201: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -169:
                            break;
                        case 202: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -170:
                            break;
                        case 203: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -171:
                            break;
                        case 204: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -172:
                            break;
                        case 205: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -173:
                            break;
                        case 206: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -174:
                            break;
                        case 207: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -175:
                            break;
                        case 208: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -176:
                            break;
                        case 209: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -177:
                            break;
                        case 210: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -178:
                            break;
                        case 211: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -179:
                            break;
                        case 212: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -180:
                            break;
                        case 213: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -181:
                            break;
                        case 214: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -182:
                            break;
                        case 215: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -183:
                            break;
                        case 216: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -184:
                            break;
                        case 217: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -185:
                            break;
                        case 218: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -186:
                            break;
                        case 219: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -187:
                            break;
                        case 220: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -188:
                            break;
                        case 221: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -189:
                            break;
                        case 222: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -190:
                            break;
                        case 223: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -191:
                            break;
                        case 224: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -192:
                            break;
                        case 225: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -193:
                            break;
                        case 226: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -194:
                            break;
                        case 227: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -195:
                            break;
                        case 228: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -196:
                            break;
                        case 229: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -197:
                            break;
                        case 230: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -198:
                            break;
                        case 231: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -199:
                            break;
                        case 232: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -200:
                            break;
                        case 233: {
                            return newSymbol(sym.QNAME, yytext());
                        }
                        case -201:
                            break;
                        default:
                            yy_error(YY_E_INTERNAL, false);
                        case -1:
                    }
                    yy_initial = true;
                    yy_state = yy_state_dtrans[yy_lexical_state];
                    yy_next_state = YY_NO_STATE;
                    yy_last_accept_state = YY_NO_STATE;
                    yy_mark_start();
                    yy_this_accept = yy_acpt[yy_state];
                    if (YY_NOT_ACCEPT != yy_this_accept) {
                        yy_last_accept_state = yy_state;
                        yy_mark_end();
                    }
                }
            }
        }
    }
}
